home *** CD-ROM | disk | FTP | other *** search
/ The Very Best of Atari Inside / The Very Best of Atari Inside 1.iso / mint / mgr / lib / sfont.c < prev    next >
Text File  |  1989-01-24  |  19KB  |  697 lines

  1. /*                        Copyright (c) 1987 Bellcore
  2.  *                            All Rights Reserved
  3.  *       Permission is granted to copy or use this program, EXCEPT that it
  4.  *       may not be sold for profit, the copyright notice must be reproduced
  5.  *       on copies, and credit should be given to Bellcore where it is due.
  6.  *       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
  7.  */
  8. /*    $Header: sfont.c,v 4.2 88/06/22 09:12:40 sau Exp $
  9.     $Source: /tmp/mgrsrc/lib/RCS/sfont.c,v $
  10. */
  11. static char    RCSid_[] = "$Source: /tmp/mgrsrc/lib/RCS/sfont.c,v $$Revision: 4.2 $";
  12.  
  13. /* These characters were adapted from the Hershey font collection.
  14.  *
  15.  *   The Hershey Fonts were originally created by Dr. A. V. Hershey
  16.  *   while working at the U. S.  National Bureau of Standards.
  17.  */
  18.  
  19. /*---------------------------------------*/
  20. sfont( font, ch, min, max, npts, pts)
  21.     int font, *npts;
  22.     char ch;
  23.     short    *min, *max, *pts;
  24. #    define char_per_font 96
  25. {
  26.     int i;   char *c;
  27. static char error_char[127] = { 62, -11, 11,
  28.         -2,4,0,4,0,5,-1,6,-2,5,-2,4,-2,2,-3,0,-2,-2,-3,-4,
  29.         -3,-7,-2,-9,0,-10,2,-9,3,-7,3,-4,2,-2,3,0,2,2,2,4,
  30.         2,5,1,6,0,5,0,4,2,4,31,31,-4,10,-5,5,-2,2,-3,1,-7,3,
  31.         -12,0,31,31,-10,-5,-7,0,-3,0,-3,-1,-6,-3,-5,-10,31,31,
  32.         4,10,5,5,2,2,3,1,7,3,12,0,31,31,10,-5,7,0,3,0,3,-1,
  33.         6,-3,5,-10,31,31,-2,-7,1,-7,2,-6,1,-5,-1,-5,-2,-4,
  34.         -1,-3,2,-3 };
  35.  
  36. /*--  Stick Figure Font --*/
  37.  
  38. static char c1[] = {                /* SP */
  39.      0, -8,  8};
  40. static char c2[] = {
  41.      8,  -4,   4,
  42.      0,  10,   0,  -2,
  43.     31,  31,   0,  -7,  -1,  -8,   0,  -9,   1,  -8,
  44.      0,  -7};
  45. static char c3[] = {
  46.      5,  -7,   7,
  47.     -2,  12,  -4,   5,
  48.     31,  31,   4,  12,   2,   5};
  49. static char c4[] = {
  50.     11, -10,  11,
  51.      1,  12,  -6, -16,  31,  31,
  52.      7,  12,   0, -16,  31,  31,  -6,   1,   8,   1,
  53.     31,  31,  -7,  -5,   7,  -5};
  54. static char c5[] = {
  55.       26, -10,  10,
  56.     -2,  16,  -2, -13,  31,  31,
  57.      2,  16,   2, -13,  31,  31,
  58.      7,   9,   5,  11,   2,  12,
  59.     -2,  12,  -5,  11,  -7,   9,  -7,   7,  -6,   5,
  60.     -5,   4,  -3,   3,   3,   1,   5,   0,   6,  -1,
  61.      7,  -3,   7,  -6,   5,  -8,   2,  -9,  -2,  -9,
  62.     -5,  -8,  -7,  -6};
  63. static char c6[] = {
  64.       31, -12,  12,
  65.      9,  12,  -9,  -9,  31,  31,
  66.     -4,  12,  -2,  10,  -2,   8,  -3,   6,  -5,   5,
  67.     -7,   5,  -9,   7,  -9,   9,  -8,  11,  -6,  12,
  68.     -4,  12,  -2,  11,   1,  10,   4,  10,   7,  11,
  69.      9,  12,  31,  31,   5,  -2,   3,  -3,   2,  -5,
  70.      2,  -7,   4,  -9,   6,  -9,   8,  -8,   9,  -6,
  71.      9,  -4,   7,  -2,   5,  -2};
  72.  
  73. static char c7[] = {
  74.       30, -12,  13,
  75.     10,   4,   9,   5,   8,   5,   7,   4,
  76.      6,   2,   4,  -4,   3,  -6,   1,  -8,  -1,  -9,
  77.     -5,  -9,  -8,  -8,  -9,  -6,  -9,  -3,  -8,  -1,
  78.     -2,   3,   0,   5,   1,   7,   1,   9,   0,  11,
  79.     -2,  12,  -4,  11,  -5,   9,  -5,   7,  -4,   4,
  80.     -2,   1,   3,  -6,   5,  -8,   8,  -9,   9,  -9,
  81.     10,  -8};
  82.  
  83. static char c8[] = {
  84.        2,  -4,   4,
  85.      1,  12,  -1,   5};
  86.  
  87. static char c9[] = {
  88.       10,  -7,   7,
  89.      4,  16,   2,  14,   0,  11,
  90.     -2,   7,  -3,   2,  -3,  -2,  -2,  -7,   0, -11,
  91.      2, -14,   4, -16};
  92.  
  93. static char c10[] = {
  94.       10,  -7,   7,
  95.     -4,  16,  -2,  14,   0,  11,
  96.      2,   7,   3,   2,   3,  -2,   2,  -7,   0, -11,
  97.     -2, -14,  -4, -16};
  98.  
  99. static char c11[] = {
  100.        8,  -8,   8,
  101.      0,  12,   0,   0,  31,  31,
  102.     -5,   9,   5,   3,  31,  31,   5,   9,  -5,   3};
  103.  
  104. static char c12[] = {
  105.        5, -12,  12,
  106.      0,   9,   0,  -9,  31,  31,
  107.     -9,   0,   9,   0};
  108.  
  109. static char c13[] = {
  110.        7,  -4,   4,
  111.      0,  -9,  -1,  -8,   0,  -7,
  112.      1,  -8,   1, -10,   0, -12,  -1, -13};
  113.  
  114. static char c14[] = {
  115.        2, -12,  12,
  116.     -9,   0,   9,   0};
  117.  
  118. static char c15[] = {
  119.        5,  -4,   4,
  120.      0,  -7,  -1,  -8,   0,  -9,
  121.      1,  -8,   0,  -7};
  122.  
  123. static char c16[] = {
  124.        2, -11,  11,
  125.      9,  16,  -9, -16};
  126.  
  127. static char c17[] = {
  128.       17, -10,  10,
  129.     -1,  12,  -4,  11,  -6,   8,
  130.     -7,   3,  -7,   0,  -6,  -5,  -4,  -8,  -1,  -9,
  131.      1,  -9,   4,  -8,   6,  -5,   7,   0,   7,   3,
  132.      6,   8,   4,  11,   1,  12,  -1,  12};
  133.  
  134. static char c18[] = {
  135.        4, -10,  10,
  136.     -4,   8,  -2,   9,   1,  12,
  137.      1,  -9};
  138.  
  139. static char c19[] = {
  140.       14, -10,  10,
  141.     -6,   7,  -6,   8,  -5,  10,
  142.     -4,  11,  -2,  12,   2,  12,   4,  11,   5,  10,
  143.      6,   8,   6,   6,   5,   4,   3,   1,  -7,  -9,
  144.      7,  -9};
  145.  
  146. static char c20[] = {
  147.       15, -10,  10,
  148.     -5,  12,   6,  12,   0,   4,
  149.      3,   4,   5,   3,   6,   2,   7,  -1,   7,  -3,
  150.      6,  -6,   4,  -8,   1,  -9,  -2,  -9,  -5,  -8,
  151.     -6,  -7,  -7,  -5};
  152.  
  153. static char c21[] = {
  154.        6, -10,  10,
  155.      3,  12,  -7,  -2,   8,  -2,
  156.     31,  31,   3,  12,   3,  -9};
  157.  
  158. static char c22[] = {
  159.       17, -10,  10,
  160.      5,  12,  -5,  12,  -6,   3,
  161.     -5,   4,  -2,   5,   1,   5,   4,   4,   6,   2,
  162.      7,  -1,   7,  -3,   6,  -6,   4,  -8,   1,  -9,
  163.     -2,  -9,  -5,  -8,  -6,  -7,  -7,  -5};
  164.  
  165. static char c23[] = {
  166.       23, -10,  10,
  167.      6,   9,   5,  11,   2,  12,
  168.      0,  12,  -3,  11,  -5,   8,  -6,   3,  -6,  -2,
  169.     -5,  -6,  -3,  -8,   0,  -9,   1,  -9,   4,  -8,
  170.      6,  -6,   7,  -3,   7,  -2,   6,   1,   4,   3,
  171.      1,   4,   0,   4,  -3,   3,  -5,   1,  -6,  -2};
  172.  
  173. static char c24[] = {
  174.        5, -10,  10,
  175.      7,  12,  -3,  -9,  31,  31,
  176.     -7,  12,   7,  12};
  177.  
  178. static char c25[] = {
  179.       29, -10,  10,
  180.     -2,  12,  -5,  11,  -6,   9,
  181.     -6,   7,  -5,   5,  -2,   4,   3,   3,   5,   2,
  182.      6,   1,   7,  -1,   7,  -4,   6,  -6,   4,  -8,
  183.      1,  -9,  -1,  -9,  -4,  -8,  -6,  -6,  -7,  -4,
  184.     -7,  -1,  -6,   1,  -5,   2,  -3,   3,   2,   4,
  185.      5,   5,   6,   7,   6,   9,   5,  11,   2,  12,
  186.     -2,  12};
  187.  
  188. static char c26[] = {
  189.       23, -10,  10,
  190.      6,   5,   5,   2,   3,   0,
  191.      0,  -1,  -1,  -1,  -4,   0,  -6,   2,  -7,   5,
  192.     -7,   6,  -6,   9,  -4,  11,  -1,  12,   0,  12,
  193.      3,  11,   5,   9,   6,   5,   6,   0,   5,  -5,
  194.      3,  -8,   0,  -9,  -2,  -9,  -5,  -8,  -6,  -6};
  195.  
  196. static char c27[] = {
  197.       11,  -4,   6,
  198.      0, 5, -1, 4, 0, 3, 1, 4, 0, 5, 31, 31, 0, -7, -1, -8,
  199.      0, -9, 1, -8, 0, -7};
  200.  
  201. static char c28[] = {
  202.       13,  -4,   4,
  203.      0,   5,  -1,   4,   0,   3,
  204.      1,   4,   0,   5,  31,  31,   0,  -9,  -1,  -8,
  205.      0,  -7,   1,  -8,   1, -10,   0, -12,  -1, -13};
  206.  
  207. static char c29[] = {
  208.        3, -11,  11,
  209.      8,   9,  -8,   0,   8,  -9};
  210.  
  211. static char c30[] = {
  212.        5, -12,  12,
  213.     -9,   3,   9,   3,  31,  31,
  214.     -9,  -3,   9,  -3};
  215.  
  216. static char c31[] = {
  217.        3, -11,  11,
  218.     -8,   9,   8,   0,  -8,  -9};
  219.  
  220. static char c32[] = {
  221.       23,  -9,   9,
  222.     -5,   8,  -4,   7,  -5,   6,
  223.     -6,   7,  -6,   8,  -5,  10,  -4,  11,  -2,  12,
  224.      1,  12,   4,  11,   5,  10,   6,   8,   6,   6,
  225.      5,   4,   4,   3,   0,   1,   0,  -2,  31,  31,
  226.      0,  -7,  -1,  -8,
  227.      0,  -9,   1,  -8,   0,  -7};
  228.  
  229. static char c33[] = {
  230.       44, -13,  14,
  231.      5,   4,   4,   6,   2,   7,
  232.     -1,   7,  -3,   6,  -4,   5,  -5,   2,  -5,  -1,
  233.     -4,  -3,  -2,  -4,   1,  -4,   3,  -3,   4,  -1,
  234.     31,  31,
  235.      6,   7,   5,   4,   4,  -1,
  236.      4,  -3,   6,  -4,   8,  -4,  10,  -2,  11,   1,
  237.     11,   3,  10,   6,   9,   8,   7,  10,   5,  11,
  238.      2,  12,  -1,  12,  -4,  11,  -6,  10,  -8,   8,
  239.     -9,   6, -10,   3, -10,   0,  -9,  -3,  -8,  -5,
  240.     -6,  -7,  -4,  -8,  -1,  -9,   2,  -9,   5,  -8,
  241.      7,  -7,   8,  -6};
  242.  
  243. static char c34[] = {
  244.        8,  -9,   9,
  245.      0,  12,  -8,  -9,  31,  31,
  246.      0,  12,   8,  -9,  31,  31,  -6,  -4,   6,  -4};
  247.  
  248. static char c35[] = {
  249.       23, -11,  10,
  250.     -7,  12,  -7,  -9,  31,  31,
  251.     -7,  12,   2,  12,   5,  11,   6,  10,   7,   8,
  252.      7,   6,   6,   4,   5,   3,   2,   2,  31,  31,
  253.     -7,   2,   2,   2,   5,   1,   6,   0,   7,  -2,
  254.      7,  -5,   6,  -7,   5,  -8,   2,  -9,  -7,  -9};
  255.  
  256. static char c36[] = {
  257.       18, -10,  11,
  258.      8,   7,   7,   9,   5,  11,
  259.      3,  12,  -1,  12,  -3,  11,  -5,   9,  -6,   7,
  260.     -7,   4,  -7,  -1,  -6,  -4,  -5,  -6,  -3,  -8,
  261.     -1,  -9,   3,  -9,   5,  -8,   7,  -6,   8,  -4};
  262.  
  263. static char c37[] = {
  264.       15, -11,  10,
  265.     -7,  12,  -7,  -9,  31,  31,
  266.     -7,  12,   0,  12,   3,  11,   5,   9,   6,   7,
  267.      7,   4,   7,  -1,   6,  -4,   5,  -6,   3,  -8,
  268.      0,  -9,  -7,  -9};
  269.  
  270. static char c38[] = {
  271.       11, -10,   9,
  272.     -6,  12,  -6,  -9,  31,  31,
  273.     -6,  12,   7,  12,  31,  31,  -6,   2,   2,   2,
  274.     31,  31,  -6,  -9,   7,  -9};
  275.  
  276. static char c39[] = {
  277.        8, -10,   8,
  278.     -6,  12,  -6,  -9,  31,  31,
  279.     -6,  12,   7,  12,  31,  31,  -6,   2,   2,   2};
  280.  
  281. static char c40[] = {
  282.       22, -10,  11,
  283.      8,   7,   7,   9,   5,  11,
  284.      3,  12,  -1,  12,  -3,  11,  -5,   9,  -6,   7,
  285.     -7,   4,  -7,  -1,  -6,  -4,  -5,  -6,  -3,  -8,
  286.     -1,  -9,   3,  -9,   5,  -8,   7,  -6,   8,  -4,
  287.      8,  -1,  31,  31,   3,  -1,   8,  -1};
  288.  
  289. static char c41[] = {
  290.        8, -11,  11,
  291.     -7,  12,  -7,  -9,  31,  31,
  292.      7,  12,   7,  -9,  31,  31,  -7,   2,   7,   2};
  293.  
  294. static char c42[] = {
  295.        8,  -6,   6,
  296.      0,  12,   0,  -9,  31,  31,
  297.     -3,  12,   3,  12,  31,  31,  -3,  -9,   3,  -9};
  298.  
  299. static char c43[] = {
  300.       10,  -9,   8,
  301.      4,  12,   4,  -4,   3,  -7,
  302.      2,  -8,   0,  -9,  -2,  -9,  -4,  -8,  -5,  -7,
  303.     -6,  -4,  -6,  -2};
  304.  
  305. static char c44[] = {
  306.        8, -11,   9,
  307.     -7,  12,  -7,  -9,  31,  31,
  308.      7,  12,  -7,  -2,  31,  31,  -2,   3,   7,  -9};
  309.  
  310. static char c45[] = {
  311.        5, -10,   7,
  312.     -6,  12,  -6,  -9,  31,  31,
  313.     -6,  -9,   6,  -9};
  314.  
  315. static char c46[] = {
  316.       11, -12,  12,
  317.     -8,  12,  -8,  -9,  31,  31,
  318.     -8,  12,   0,  -9,  31,  31,   8,  12,   0,  -9,
  319.     31,  31,   8,  12,   8,  -9};
  320.  
  321. static char c47[] = {
  322.        8, -11,  11,
  323.     -7,  12,  -7,  -9,  31,  31,
  324.     -7,  12,   7,  -9,  31,  31,   7,  12,   7,  -9};
  325.  
  326. static char c48[] = {
  327.       21, -11,  11,
  328.     -2,  12,  -4,  11,  -6,   9,
  329.     -7,   7,  -8,   4,  -8,  -1,  -7,  -4,  -6,  -6,
  330.     -4,  -8,  -2,  -9,   2,  -9,   4,  -8,   6,  -6,
  331.      7,  -4,   8,  -1,   8,   4,   7,   7,   6,   9,
  332.      4,  11,   2,  12,  -2,  12};
  333.  
  334. static char c49[] = {
  335.       13, -11,  10,
  336.     -7,  12,  -7,  -9,  31,  31,
  337.     -7,  12,   2,  12,   5,  11,   6,  10,   7,   8,
  338.      7,   5,   6,   3,   5,   2,   2,   1,  -7,   1};
  339.  
  340. static char c50[] = {
  341.       24, -11,  11,
  342.     -2,  12,  -4,  11,  -6,   9,
  343.     -7,   7,  -8,   4,  -8,  -1,  -7,  -4,  -6,  -6,
  344.     -4,  -8,  -2,  -9,   2,  -9,   4,  -8,   6,  -6,
  345.      7,  -4,   8,  -1,   8,   4,   7,   7,   6,   9,
  346.      4,  11,   2,  12,  -2,  12,  31,  31,   1,  -5,
  347.      7, -11};
  348.  
  349. static char c51[] = {
  350.       16, -11,  10,
  351.     -7,  12,  -7,  -9,  31,  31,
  352.     -7,  12,   2,  12,   5,  11,   6,  10,   7,   8,
  353.      7,   6,   6,   4,   5,   3,   2,   2,  -7,   2,
  354.     31,  31,   0,   2,   7,  -9};
  355.  
  356. static char c52[] = {
  357.       20, -10,  10,
  358.      7,   9,   5,  11,   2,  12,
  359.     -2,  12,  -5,  11,  -7,   9,  -7,   7,  -6,   5,
  360.     -5,   4,  -3,   3,   3,   1,   5,   0,   6,  -1,
  361.      7,  -3,   7,  -6,   5,  -8,   2,  -9,  -2,  -9,
  362.     -5,  -8,  -7,  -6};
  363.  
  364. static char c53[] = {
  365.        5,  -8,   8,
  366.      0,  12,   0,  -9,  31,  31,
  367.     -7,  12,   7,  12};
  368.  
  369. static char c54[] = {
  370.       10, -11,  11,
  371.     -7,  12,  -7,  -3,  -6,  -6,
  372.     -4,  -8,  -1,  -9,   1,  -9,   4,  -8,   6,  -6,
  373.      7,  -3,   7,  12};
  374.  
  375. static char c55[] = {
  376.        5,  -9,   9,
  377.     -8,  12,   0,  -9,  31,  31,
  378.      8,  12,   0,  -9};
  379.  
  380. static char c56[] = {
  381.       11, -12,  12,
  382.     1   -10,  12,  -5,  -9,  31,  31,
  383.      0,  12,  -5,  -9,  31,  31,   0,  12,   5,  -9,
  384.     31,  31,  10,  12,   5,  -9};
  385.  
  386. static char c57[] = {
  387.        5, -10,  10,
  388.     -7,  12,   7,  -9,  31,  31,
  389.      7,  12,  -7,  -9};
  390.  
  391. static char c58[] = {
  392.        6,  -9,   9,
  393.     -8,  12,   0,   2,   0,  -9,
  394.     31,  31,   8,  12,   0,   2};
  395.  
  396. static char c59[] = {
  397.        8, -10,  10,
  398.      7,  12,  -7,  -9,  31,  31,
  399.     -7,  12,   7,  12,  31,  31,  -7,  -9,   7,  -9};
  400.  
  401. static char c60[] = {
  402.        8,  -7,   7,
  403.     -3,  16,  -3, -16,  31,  31,
  404.     -3,  16,   4,  16,
  405.     31,  31,  -3, -16,   4, -16};
  406.  
  407. static char c61[] = {
  408.        2, -11,  11,
  409.     -9,  16,   9, -16};
  410.  
  411. static char c62[] = {
  412.        8,  -7,   7,
  413.      3,  16,   3, -16,  31,  31,  -4,  16,   3,  16,
  414.     31,  31,  -4, -16,   3, -16};
  415.  
  416. static char c63[] = {
  417.        3, -11,  11,
  418.     1  -8, -2, 0, 3, 8, -2};
  419.  
  420. static char c64[] = {
  421.        2, -12,  12,
  422.     1  -9, -12, 9, -12};
  423.  
  424. static char c65[] = {
  425.        2,  -6,   6,
  426.     1  -2, 12, 3, 6};
  427.  
  428. static char c66[] = {
  429.       17,  -9,  10,
  430.      6,   5,   6,  -9,  31,  31,
  431.      6,   2,   4,   4,   2,   5,  -1,   5,  -3,   4,
  432.     -5,   2,  -6,  -1,  -6,  -3,  -5,  -6,  -3,  -8,
  433.     -1,  -9,   2,  -9,   4,  -8,   6,  -6};
  434.  
  435. static char c67[] = {
  436.       17, -10,   9,
  437.     -6,  12,  -6,  -9,  31,  31,
  438.     -6,   2,  -4,   4,  -2,   5,   1,   5,   3,   4,
  439.      5,   2,   6,  -1,   6,  -3,   5,  -6,   3,  -8,
  440.      1,  -9,  -2,  -9,  -4,  -8,  -6,  -6};
  441.  
  442. static char c68[] = {
  443.       14,  -9,   9,
  444.      6,   2,   4,   4,   2,   5,
  445.     -1,   5,  -3,   4,  -5,   2,  -6,  -1,  -6,  -3,
  446.     -5,  -6,  -3,  -8,  -1,  -9,   2,  -9,   4,  -8,
  447.      6,  -6};
  448.  
  449. static char c69[] = {
  450.       17,  -9,  10,
  451.      6,  12,   6,  -9,  31,  31,
  452.      6,   2,   4,   4,   2,   5,  -1,   5,  -3,   4,
  453.     -5,   2,  -6,  -1,  -6,  -3,  -5,  -6,  -3,  -8,
  454.     -1,  -9,   2,  -9,   4,  -8,   6,  -6};
  455.  
  456. static char c70[] = {
  457.       17,  -9,   9,
  458.     -6,  -1,   6,  -1,   6,   1,
  459.      5,   3,   4,   4,   2,   5,  -1,   5,  -3,   4,
  460.     -5,   2,  -6,  -1,  -6,  -3,  -5,  -6,  -3,  -8,
  461.     -1,  -9,   2,  -9,   4,  -8,   6,  -6};
  462.  
  463. static char c71[] = {
  464.        8,  -5,   7,
  465.      5,  12,   3,  12,   1,  11,
  466.      0,   8,   0,  -9,  31,  31,  -4,   5,   4,   5};
  467.  
  468. static char c72[] = {
  469.       22,  -9,  10,
  470.      6,   5,   6, -11,   5, -14,
  471.      4, -15,   2, -16,  -1, -16,  -3, -15,  31,  31,
  472.      6,   2,   4,   4,   2,   5,  -1,   5,  -3,   4,
  473.     -5,   2,  -6,  -1,  -6,  -3,  -5,  -6,  -3,  -8,
  474.     -1,  -9,   2,  -9,   4,  -8,   6,  -6};
  475.  
  476. static char c73[] = {
  477.       10,  -9,  10,
  478.     -5,  12,  -5,  -9,  31,  31,
  479.     -5,   1,  -2,   4,   0,   5,   3,   5,   5,   4,
  480.      6,   1,   6,  -9};
  481.  
  482. static char c74[] = {
  483.        8,  -4,   4,
  484.     -1,  12,   0,  11,   1,  12,
  485.      0,  13,  -1,  12,  31,  31,   0,   5,   0,  -9};
  486.  
  487. static char c75[] = {
  488.       11,  -5,   5,
  489.      0,  12,   1,  11,   2,  12,
  490.      1,  13,   0,  12,  31,  31,   1,   5,   1, -12,
  491.      0, -15,  -2, -16,  -4, -16};
  492.  
  493. static char c76[] = {
  494.        8,  -9,   8,
  495.     -5,  12,  -5,  -9,  31,  31,
  496.      5,   5,  -5,  -5,  31,  31,  -1,  -1,   6,  -9};
  497.  
  498. static char c77[] = {
  499.        2,  -4,   4,
  500.      0,  12,   0,  -9};
  501.  
  502. static char c78[] = {
  503.       18, -15,  15,
  504.     -11,   5, -11,  -9,  31,  31,
  505.     -11,   1,  -8,   4,  -6,   5,  -3,   5,  -1,   4,
  506.      0,   1,   0,  -9,  31,  31,   0,   1,   3,   4,
  507.      5,   5,   8,   5,  10,   4,  11,   1,  11,  -9};
  508.  
  509. static char c79[] = {
  510.       10,  -9,  10,
  511.     -5,   5,  -5,  -9,  31,  31,
  512.     -5,   1,  -2,   4,   0,   5,   3,   5,   5,   4,
  513.      6,   1,   6,  -9};
  514.  
  515. static char c80[] = {
  516.       17,  -9,  10,
  517.     -1,   5,  -3,   4,  -5,   2,
  518.     -6,  -1,  -6,  -3,  -5,  -6,  -3,  -8,  -1,  -9,
  519.      2,  -9,   4,  -8,   6,  -6,   7,  -3,   7,  -1,
  520.      6,   2,   4,   4,   2,   5,  -1,   5};
  521.  
  522. static char c81[] = {
  523.       17, -10,   9,
  524.     -6,   5,  -6, -16,  31,  31,
  525.     -6,   2,  -4,   4,  -2,   5,   1,   5,   3,   4,
  526.      5,   2,   6,  -1,   6,  -3,   5,  -6,   3,  -8,
  527.      1,  -9,  -2,  -9,  -4,  -8,  -6,  -6,};
  528.  
  529. static char c82[] = {
  530.       17,  -9,  10,
  531.      6,   5,   6, -16,  31,  31,
  532.      6,   2,   4,   4,   2,   5,  -1,   5,  -3,   4,
  533.     -5,   2,  -6,  -1,  -6,  -3,  -5,  -6,  -3,  -8,
  534.     -1,  -9,   2,  -9,   4,  -8,   6,  -6};
  535.  
  536. static char c83[] = {
  537.        8,  -7,   7,
  538.     -3,   5,  -3,  -9,  31,  31,
  539.     -3,  -1,  -2,   2,   0,   4,   2,   5,   5,   5};
  540.  
  541. static char c84[] = {
  542.       17,  -8,   9,
  543.      6,   2,   5,   4,   2,   5,
  544.     -1,   5,  -4,   4,  -5,   2,  -4,   0,  -2,  -1,
  545.      3,  -2,   5,  -3,   6,  -5,   6,  -6,   5,  -8,
  546.      2,  -9,  -1,  -9,  -4,  -8,  -5,  -6};
  547.  
  548. static char c85[] = {
  549.        8,  -5,   7,
  550.      0,  12,   0,  -5,   1,  -8,
  551.      3,  -9,   5,  -9,  31,  31,  -4,   5,   4,   5};
  552.  
  553. static char c86[] = {
  554.       10,  -9,  10,
  555.     -5,   5,  -5,  -5,  -4,  -8,
  556.     -2,  -9,   1,  -9,   3,  -8,   6,  -5,  31,  31,
  557.      6,   5,   6,  -9};
  558.  
  559. static char c87[] = {
  560.        5,  -8,   8,
  561.     -6,   5,   0,  -9,  31,  31,
  562.      6,   5,   0,  -9};
  563.  
  564. static char c88[] = {
  565.       11, -11,  11,
  566.     -8,   5,  -4,  -9,  31,  31,
  567.      0,   5,  -4,  -9,  31,  31,   0,   5,   4,  -9,
  568.     31,  31,   8,   5,   4,  -9};
  569.  
  570. static char c89[] = {
  571.        5,  -9,   9,
  572.     -6,   5,   6,  -9,  31,  31,
  573.      6,   5,  -6,  -9};
  574.  
  575. static char c90[] = {
  576.        9,  -8,   8,
  577.     -6,   5,   0,  -9,  31,  31,
  578.      6,   5,   0,  -9,  -2, -13,  -4, -15,  -6, -16,
  579.     -7, -16};
  580.  
  581. static char c91[] = {
  582.        8,  -9,   9,
  583.      6,   5,  -6,  -9,  31,  31,
  584.     -6,   5,   6,   5,  31,  31,  -6,  -9,   6,  -9};
  585.  
  586. static char c92[] = {
  587.       17,  -7,   9,
  588.     2, 16, -1, 13, -2, 10, -2, 8, -1, 5, 2, 2, 31, 31,
  589.     2, 2, -1, 0, 2, -2, 31, 31,
  590.     2, -2, -1, -5, -2, -8, -2, -10, -1, -13, 2, -16};
  591.  
  592. static char c93[] = {
  593.        2,  -4,   4,
  594.     0, 16, 0, -16};
  595.  
  596. static char c94[] = {
  597.       17,  -7,   9,
  598.     -2, 16, 1, 13, 2, 10, 2, 8, 1, 5, -2, 2, 31, 31,
  599.     -2, 2, 1, 0, -2, -2, 31, 31,
  600.     -2, -2, 1, -5, 2, -8, 2, -10, 1, -13, -2, -16};
  601.  
  602. static char c95[] = {
  603.       11, -12,  14,
  604.     -9, -3, -9, -1, -8, 2, -6, 3, -4, 3, -2, 2, 2, -1, 4, -2,
  605.     6, -2, 8, -1, 9, 1};
  606.  
  607. static char c96[] = {
  608.        4, -10,  10,
  609.     -8, -9, 0, 12, 8, -9, -8, -9};
  610.  
  611. static char c97[] = {                /* ground */
  612.        8,   0,   4,
  613.        0,-5,0,5,31,31,2,-3,2,3,31,31,4,-1,4,1};
  614.  
  615. static char c98[] = {                /* vertical bar */
  616.        2,   0,   3,
  617.        0,-5,0,5 };
  618.  
  619. static char c99[] = {                /* chip */
  620.        9,   0,   8,
  621.        0,-8,0,8,3,8,3,6,5,6,5,8,8,8,8,-8,0,-8 };
  622.  
  623. static char c100[] = {                /* big circle */
  624.       13,   0,  16,
  625.       0,0,1,4,4,7,8,8,12,7,15,4,16,0,
  626.       15,-4,12,-7,8,-8,4,-7,1,-4,0,0 };
  627.  
  628. static char c101[] = {                /* arrowtail > */
  629.        3,   0,   5,
  630.        0,-4,5,0,0,4 };
  631.  
  632. static char c102[] = {                /* - -  */
  633.        5,   0,  15,
  634.        0,0,5,0,31,31,10,0,15,0 };
  635.  
  636. static char c103[] = {                /* large curve ) */
  637.        6,   -1,   3,
  638.        -1,8,0,6,1,2,1,-2,0,-6,-1,-8 };
  639.  
  640. static char c104[] = {                /* centerline --- - */
  641.        5,   0,  20,
  642.        0,0,13,0,31,31,16,0,20,0 };
  643.  
  644. static char c105[] = {                /* inverter */
  645.        4,   0,   7,
  646.        0,-5,7,0,0,5,0,-5 };
  647.  
  648. static char c106[] = {                /* resistor */
  649.        9,   0,  20,
  650.        0,0,2,0,4,3,7,-3,10,3,13,-3,16,3,18,0,20,0 };
  651.  
  652. static char c107[] = {                /* transistor */
  653.        9,   0,   6,
  654.        0,-4,0,4,31,31,6,-8,6,-6,2,-6,2,6,6,6,6,8 };
  655.  
  656. static char c108[] = {                /* arrowhead */
  657.        6,   0,   5,
  658.        0,0,5,0,31,31,0,-4,5,0,0,4 };
  659.  
  660. static char c109[] = {                /* or gate */
  661.       14,  -1,  16,
  662.       -1,-8,7,-7,11,-5,14,-3,16,0,14,3,11,5,7,7,-1,8,0,6,1,2,1,-2,
  663.       0,-6,-1,-8 };
  664.  
  665. static char c110[] = {                /* and gate */
  666.       10,   0,  15,
  667.       0,-8,8,-8,11,-7,14,-4,15,0,14,4,11,7,8,8,0,8,0,-8 };
  668.  
  669. static char c111[] = {                /* not symbol o */
  670.        9,   0,   4,
  671.        0,-1,1,-2,3,-2,4,-1,4,1,3,2,1,2,0,1,0,-1 };
  672.  
  673. static char c112[] = {                /*  wire connect dot */
  674.        5,  0,  0,
  675.        -1,-1,1,-1,1,1,-1,1,-1,-1 };
  676.  
  677. static char *p[] = { 
  678.     c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
  679.     c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24,
  680.     c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36,
  681.     c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48,
  682.     c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60,
  683.     c61, c62, c63, c64, c65, c66, c67, c68, c69, c70, c71, c72,
  684.     c73, c74, c75, c76, c77, c78, c79, c80, c81, c82, c83, c84,
  685.     c85, c86, c87, c88, c89, c90, c91, c92, c93, c94, c95, c96,
  686.     c97, c98, c99, c100,c101,c102,c103,c104,c105,c106,c107,c108,
  687.     c109,c110,c111,c112};
  688. /*--------------------------------*/
  689.     i = ch-32;
  690.     c = error_char;
  691.     if (i >= 0 && i <113) c = p[i];
  692.     *npts = ( *c++) << 1;        /* convert pt count to coord count*/
  693.     *min = *c++;            /* extent of char, in char coords*/
  694.     *max = *c++;
  695.     for (i=0; i<*npts; i++) *pts++ = *c++;
  696. }
  697.